Online data volume deletion

ABSTRACT

A system to delete a data volume may include storage of a plurality of data pages of the data volume of a data area into a cache, prevention of writing of data pages to the data volume, and designation of each of the plurality of data pages in the cache as modified. The system may also include writing of all data pages in the cache that are designated as modified to a respective location in one or more other data volumes of the data area, and updating, for each of the written data pages, a converter page of the cache to associate the written data page with its respective location in the one or more other data volumes.

FIELD

Some embodiments relate to managing data volumes of a database system.In particular, some embodiments concern releasing and deleting a datavolume of a database system while the database system is online.

BACKGROUND

A database system may store data across several data volumes of a dataarea. During operation of the database system, it may occasionallybecome desirable to delete a data volume from the data area in order toreduce a size of the data area and/or to otherwise reconfigure the dataarea. Conventional techniques necessitate the database system to enteran offline mode prior to deleting a data volume. Since the databasesystem cannot be read or written in an offline mode, conventionaltechniques for deleting a data volume are unsuitable for someapplications.

Conventional techniques for deleting a data volume pose additionalproblems if the data volume stores a restart page for the databasesystem. A restart page may include information used to start thedatabase system and reconstruct its underlying structures. Uponstart-up, the database system looks for the restart page at a particularlocation of a particular data volume. The database system will thereforefail to start properly if the data volume including the restart page hasbeen previously deleted.

Systems are therefore desired for deleting a data volume of a databasesystem while the database system remains in an online operational mode.Systems to perform such deletion and to efficiently move and access arestart page of the deleted data volume are further desired.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a hardware architecture according to someembodiments.

FIG. 2 is a block diagram of a database system according to someembodiments.

FIG. 3 is a flow diagram of program code according to some embodiments.

FIG. 4 illustrates components of a converter in a cache according tosome embodiments.

FIG. 5 illustrates components of a converter in a data area according tosome embodiments.

FIGS. 6A through 6B comprise a flow diagram of program code according tosome embodiments.

FIG. 7 includes tabular representations of portions of converter pagesin a cache according to some embodiments.

FIG. 8 illustrates writing of converter pages to respective locations ofdata volumes according to some embodiments.

FIG. 9 illustrates updating of written converter pages based onrespective locations in data volumes according to some embodiments.

FIG. 10 illustrates modified data pages of a data volume in a data cacheaccording to some embodiments.

FIG. 11 illustrates writing of modified data pages to respectivelocations of data volumes according to some embodiments.

FIG. 12 includes tabular representations of portions of converterupdated to reflect new data page addresses according to someembodiments.

FIG. 13 includes tabular representations of portions of converter pagesin updated to reflect their new locations according to some embodiments.

FIG. 14 illustrates writing of updated converter pages to their newlocations according to some embodiments.

FIG. 15A illustrates a location of a restart page in a data areaaccording to some embodiments.

FIG. 15B illustrates deletion of a data volume of a data area andrelocation of a restart page according to some embodiments.

FIG. 16A illustrates an I/O management page of a data volume prior todeletion of another data volume according to some embodiments.

FIG. 16B illustrates an I/O management page of a data volume afterdeletion of another data volume according to some embodiments.

FIG. 17A illustrates a configuration file of a database prior todeletion of a data volume according to some embodiments.

FIG. 17B illustrates a configuration file of a database volume afterdeletion of a data volume according to some embodiments.

DETAILED DESCRIPTION

FIG. 1 is a block diagram of system 100 according to some embodiments.System 100 illustrates a client-server database environment includingapplication/database server 110, client devices 120 through 123, anddata sources 130 through 132. Other system topologies may be used inconjunction with other embodiments.

Server 110 may operate to receive, store, manage and provide data. Suchdata may be received from sources such as data sources 130 through 132and/or generated by server 110. The data may be provided to clientdevices 120 through 123 in response to requests received therefrom.Server 110 of system 100 includes database application 111, databasemanagement system (DBMS) 112, database 113, input/output (I/O) buffercache 114 and cache copy 115.

Database application 111 may provide business monitoring, inventorycontrol, online shopping, and/or any other suitable functions viainteractions with other elements of server 110. According to someembodiments, database application 111 communicates with DBMS 112 overone or more interfaces provided by DBMS 112. Database application 111may, in turn, support client applications executed by client devices 120through 123. Such a client application may simply comprise a Web browserto access and display reports generated by database application 111. Inthis regard, server 110 may comprise a Web server to manage interactionswith client devices 120 through 123.

DBMS 112 may comprise any system for managing a database instance thatis or becomes known. Generally, DBMS 112 may receive requests for data(e.g., Structured Query Language (SQL) requests from databaseapplication 111), may retrieve requested data from database 113, and mayreturn the requested data to the requestor. DBMS 112 may also performstart-up, logging, recovery, management, optimization, monitoring andother database-related tasks. DBMS 112 may operate to delete a datavolume from database 113 according to some embodiments described herein.

Database 113 may comprise one or more disparate systems for storingdata, therefore DBMS 122 may comprise one or more systems for retrievingstored data. According to some embodiments, database 113 is implementedas any suitable collection of data that may be accessed by a computerprogram to select particular data from the collection.

The data of database 113 may include data records and associated indexentries (i.e. application data), as well as configuration files,database parameters, paths, user information and any other suitableinformation. In some embodiments, database 113 is an element of anOnline Transaction Processing (OLTP) database instance. An OLTP databaseinstance may be suited for processing individual transactions quicklywithin an environment consisting of a large number of users and a largedatabase.

During database execution, various elements of the database are storedin I/O buffer cache 114. These elements may include recently-accessedpages of application data, converter pages, database catalog objectsand/or a log queue. Cache copy 115 comprises a copy of all or a portionof cache 114. Cache copy 115 may comprise a LiveCache™ database instancethat facilitates object-oriented manipulation of the copied cache data.

Server 110 may include other unshown elements that may be used duringoperation thereof, such as any suitable program code, scripts, or otherfunctional data that is executable to interface with other elements ofsystem 100, other applications, other data files, operating systemfiles, and device drivers. These elements are known to those skilled inthe art, and are therefore not described in detail herein.

Client devices 120, 121, 122 and 123 are illustrated as a laptopcomputer, a telephone, a desktop computer, and a personal digitalassistant, respectively. Generally, each of client devices 120 through123 may comprise any combination of hardware and/or software forcommunicating with server 110. This communication may comprisetransmitting a request for information to server 110 and receiving aresponse that includes data stored in database 113. Each of clientdevices 120 through 123 may provide any suitable client application suchas a Web browser or a Java applet. In this regard, client devices 120through 123 may be connected to server 110 through the Internet orthrough an Intranet.

Data sources 130 through 132 may comprise any sources of any data thatmay provide data to server 110. The data may be pushed to server 100and/or provided in response to queries received therefrom. One or moreof data sources 130 through 132 may comprise a back-end data environmentemployed in a business or industrial context. Data sources 130 through132 may therefore comprise many disparate hardware and software systems,some of which are not interoperational with one another.

Two or more of the elements of system 100 may be located remote from oneanother and may communicate with one another via a network and/or adedicated connection. Moreover, each displayed element of system 100 maycomprise any number of hardware and/or software elements, some of whichare located remote from each other.

Elements described herein as communicating with one another are directlyor indirectly capable of communicating over any number of differentsystems for transferring data, including but not limited to sharedmemory communication, a local area network, a wide area network, atelephone network, a cellular network, a fiber-optic network, asatellite network, an infrared network, a radio frequency network, andany other type of network that may be used to transmit informationbetween devices. Moreover, communication between systems may proceedover any one or more transmission protocols that are or become known,such as Asynchronous Transfer Mode (ATM), Internet Protocol (IP),Hypertext Transfer Protocol (HTTP) and Wireless Application Protocol(WAP).

FIG. 2 is a detailed block diagram of elements 112 through 114 of server100 according to some embodiments. Some embodiments will be describedbelow with reference to the details illustrated in FIG. 2 and describedbelow.

Data area 205 of database 113 includes data volumes 210 through 220.Each of data volumes 210 through 220 comprises a logical group ofphysical memory units. For example, a data volume may comprise a portionof a physical hard disk, an entire physical hard disk, or a storagesystem composed of several physical hard disks. Data area 205 mayinclude more or fewer data volumes than illustrated in FIG. 2.

Each of data volumes 210 through 220 is logically divided into storageareas known as blocks. According to some embodiments, a block holdseight kilobytes of data. Although twenty-four blocks are illustrated inconjunction with data volume 210, embodiments may define more or fewerblocks per data volume.

Database 113 and cache 114 may manage data in basic units (i.e. pages)having the same size as a block. Accordingly, a page may be accessed byreferencing a volume and a block address in which the page is stored.

Data area 205 also includes a database catalog including metadata ofobjects that are stored within data volumes 210 through 220. Theseobjects may include tables, indexes, views, users and user groups.

Database 113 may also store log volumes in a log area (not shown). Suchlog volumes store information indicating changes made to stored data.The information may be used for returning database 113 to a consistentstate after a system crash.

Configuration files 235 of database 113 store parameters for definingproperties of database 113. These parameters may specify a size andphysical location of each data volume and log volume, and a maximumnumber data volumes in data area 205.

I/O buffer cache 114 is used to manage memory that is available for I/Ooperations. I/O buffer cache 114 includes data cache 250 and converter255. I/O buffer cache 114 may reside in Random Access Memory of server110.

Data cache 250 stores pages from data area 205 that have been recentlyread or write-accessed. If a transaction changes a page, the changedpage is initially saved in data cache 250 while the previous version ofthe page remains in data area 205. At various intervals (e.g., if datacache 250 reaches a threshold fullness or if a savepoint is scheduled),the changed data page is written to a location of one of data volumes210 through 220. The foregoing process will be described in more detailbelow.

Converter 255 associates logical page numbers with physical addresses.For a given page number, converter 255 indicates a block address (e.g.,a data volume number and an offset) at which an associated page isstored in data area 205. In a case that DBMS 112 cannot find a page indata cache 250, converter 255 is accessed to determine a location of thepage in data area 205 based on the page's number.

Converter 255 includes converter map table 265 and converter pages 270according to some embodiments. Each of converter pages 270 includes arespective data volume and a block address for each of several logicalpage numbers. For each logical page number, converter map table 265specifies a memory address of I/O buffer cache 114 at which anassociated converter page 270 is located. Each of converter pages 270also indicates a data volume and a block address where it is stored indata area 205. Converter map table 265 and converter pages 270 will bediscussed in more detail with respect to FIG. 4.

Data cache 250 and converter 255 are illustrated separately in FIG. 2for the sake of clarity. According to some embodiments, data cache 250and converter 255 might not comprise separate, contiguous memoryaddresses of I/O buffer cache 114. For example, converter pages 270 maybe interspersed among data pages 260 throughout I/O buffer cache 114.

According to some embodiments, a size of I/O buffer cache 114 may beconfigured but data cache 250 and converter 255 are dimensioneddynamically. For example, if converter 255 grows and requires morepages, converter 255 is allocated more pages from I/O buffer cache 114.If I/O buffer cache 114 does not include any more pages, memoryallocated to data cache 260 is decreased and made available to converter255.

DBMS 112 is shown in communication with database 113 and I/O buffercache 114. In some embodiments, DBMS 112 includes a kernel which in turnincludes SQL manager 275 and data access manager 280. SQL manager 275processes received SQL statements and data access manager 280 managesaccess to stored data.

FIG. 3 is a flow diagram of process 300 according to some embodiments.Some embodiments of process 300 may provide deletion of a data volumewhile database 113 is in an online operational state. In someembodiments, server 110 executes program code of DBMS 112 to performprocess 300.

Process 300 and all other processes mentioned herein may be embodied inprocessor-executable program code read from one or more of acomputer-readable medium, such as a floppy disk, a CD-ROM, a DVD-ROM, aZip™ disk, a magnetic tape, and a signal encoding the process, and thenstored in a compressed, uncompiled and/or encrypted format. In someembodiments, hard-wired circuitry may be used in place of, or incombination with, program code for implementation of processes accordingto some embodiments. Embodiments are therefore not limited to anyspecific combination of hardware and software.

Initially, at S301, a plurality of data pages of a data volume is storedinto a cache. The data volume of interest is a data volume that is to bedeleted. A data volume may be deleted in order to reduce the size of itsdata area, to free a physical memory unit, to reconfigure a data area,and for other reasons.

With reference to FIG. 2, it will be assumed that a command to deletedata volume 215 is received prior to S301. As described above, datapages as well as converter pages are stored at respective blockaddresses of data volume 215. Some embodiments may store the data pagesof data volume 215 in cache 114 at S301 by reading each of the datapages.

Next, at S302, writing of data pages to the data volume is prevented.S302 may comprise designating the subject data volume as “read-only” orany other suitable action that suspends writing of data pages to thedata volume.

Each of the plurality of data pages in the cache is designated asmodified at S303. Continuing with the present example, each of the datapages of data volume 215 that are stored cache 114 is designated asmodified at S303. Cache 114 provides for such a designation in order tosupport a “shadow memory” feature.

A brief description of the shadow memory feature follows. To modify apage in accordance with the feature, the page is read from a blockaddress of a data volume, the page is modified, and a log entry iswritten. The modified page is stored in cache 114, the modified page isdesignated as modified, and the original “last known good” page remainsat the block address of the data volume from which it was read. Once anumber of modified pages in cache 114 reaches a threshold amount, orafter passage of a designated time interval, all pages designated asmodified are written to data area 205.

The modified pages are not written to the block addresses of the datavolumes from which they were read. Rather, the original unmodified pageremains designated a “last known good” page at its respective blockaddress and its modified version is written to a new block address ofdata volumes 210 through 220. To recover from a system crash, themodified pages stored in data area 205 are ignored and data area 205 isreconstructed based on the “last known good”-designated pages and thelog entries.

A savepoint is periodically initiated to convert the modified pagesstored in data area 205 to “last known good” pages and to free theblocks used by the existing “last known good” pages for writing pagesthereto. At a savepoint, all pages designated as modified in cache 114are written to data area 205 as described above. Once all modified pagesare written, the “last known good” pages associated with the modifiedpages are released so that their associated block addresses may beoverwritten.

Returning to process 300, the data pages in the cache that aredesignated as modified are written at S304 to a respective location inone or more other data volumes of the data area. The writing of pages atS304 may be facilitated by the shadow memory feature. More particularly,the shadow memory feature automatically writes modified pages of cache114 to new locations in data area 205. However, since writing of pagesto data volume 215 was prevented in S302, the modified pages are writtenonly to other data volumes 210 and 220.

For each of the data pages written at S304, a converter page is updatedat S305. A converter page is updated at S305 to associate a written datapage with its respective location in the one or more other data volumes.As described above, each of converter pages 270 is associated withseveral logical page numbers, and maps a data volume and a block addressto each associated logical page number. The converter pages 270 that areassociated with the data pages written at S304 are therefore updated atS305 to map the data pages to the locations in the one or more otherdata volumes to which the pages were written.

S304 and S305 occur at a savepoint according to some embodiments.Consequently, each data page of data volume 210 is designated a “lastknown good” data page and may be released after process 300. Moreover,data volume 210 may be deleted from data area 205 after process 300 bymodifying configuration files 235 appropriately. FIGS. 6A through 17Bprovide a detailed example of such a modification and of someembodiments of process 300.

FIG. 4 illustrates tabular representations of converter map table 265and converter pages 270 to provide background for the forthcomingdescription. As shown, converter map table 265 specifies several rangesof logical page numbers. Converter map table 265 associates a memoryaddress of I/O buffer cache 114 with each specified range. As alsoshown, stored at each memory address is a converter page 270 that listspage numbers in the range associated with each address.

For example, converter page 271 indicates that a data page associatedwith logical page number 2111 is stored at block 300 of data volume 1.Converter pages 271 and 272 also indicate locations of data area 205which store “last known good” versions of converter pages 271 and 272.For example, the “last known good” version of converter page 272 isstored at block 40 of data volume 2. The version number specified inconverter page 272 represents a last savepoint at which the “last knowngood” version was written to block 40 of data volume 2.

FIG. 5 illustrates converter index pages 500 and converter pages 510 ofdata area 205. Converter pages 510 represent the “last known good”converter pages mentioned with respect to FIG. 4. Index pages 500 may beused to locate a converter page 510 and to locate a data page in dataarea 205 based on the located converter page 510. Each index page 500includes block addresses of one or more other index pages or of aconverter page 510. By virtue of this arrangement, any of converterpages 510 (and any associated data pages) may be located in data area205 based only on the block address of converter root page 505.

FIGS. 6A through 6C comprise a flow diagram of process 600 according tosome embodiments. Process 600 may be executed to delete a data volume.In some embodiments, server 110 executes program code of DBMS 112 toperform process 600.

A data volume to be deleted is designated as read-only at S601. DBMS 112may include a free block management component for determining blockaddresses of data area 205 to which pages may be written. According tosome embodiments of S601, the free block management component isconfigured so that no pages are written to block addresses of the datavolume.

A plurality of converter pages of a cache is identified at S602. Theidentified pages consist of pages that are associated with converterpages of the data volume. FIG. 7 illustrates tabular representations ofportions of converter pages 270 stored in cache 114. Pages 270 may belocated in cache 114 using memory addresses associated therewith inconverter map table 265. Converter pages 276, 277 and 278 are associatedwith respective converter pages stored at blocks 1947, 543 and 30,respectively, of data volume 1. Accordingly, converter pages 276, 277and 278 may be identified at S602.

The identified plurality of converter pages are designated as modifiedat S603. This designation is illustrated in FIG. 7 by an asterisklocated on each of converter pages 276, 277 and 278. Any suitable systemto designate a converter page as modified may be used at S603.

Some of the converter pages identified at S602 may have been previouslymodified and not written to data area 205. Such converter pages wouldalready be designated as modified prior to S603. These modifiedconverter pages would differ from their associated converter pagesstored in the data volume, while any of the identified converter pagesthat were not designated as modified prior to S603 would be identical totheir associated converter pages stored in the data volume.

FIG. 8 illustrates converter pages 276, 277 and 278 and their associatedconverter pages 276, 274 and 278 of data volume 1. Converter page 277 isa modified version of converter page 274 that has not yet been writtento data area 205, while converter pages 276 and 278 of converter pages270 are identical to their associated converter pages stored in datavolume 1.

Next, at S604, each of the converter pages of the cache that isdesignated as modified is updated to indicate a respective location inone or more other data volumes. The respective location of an updatedconverter page indicates where the converter page is to be subsequentlywritten. By virtue of S601, the free block management component mayensure that the converter pages are updated to indicate only locationsin other data volumes 210 and 220 of data area 205. According to someembodiments, S604 occurs during execution of a savepoint.

FIG. 9 continues the present example by showing converter pages 976through 978 of converter pages 270. Converter pages 976 through 978 areversions of converter pages 276 through 278 that have been updatedaccording to S604. As such, each of converter pages 976 through 978indicates a location in one of data volume 2 or data volume 3. A versionnumber of each of converter pages 976 through 978 has also been updatedto reflect execution of the present savepoint.

The converter pages of the cache are written to their indicatedlocations in the one or more other data volumes at S605. The arrows ofFIG. 9 illustrate writing the converter pages to their indicatedlocations according to some embodiments of S605. FIG. 9 also shows thatthe blocks of data volume 1 which previously stored the “last knowngood” versions of the written converter pages have been freed at thecompletion of the savepoint.

For each of the converter pages written at S605, a converter index pageis updated at S606. The converter index page is updated to associate thewritten converter page with its new location in the data area. Forexample, one or more of converter index pages 500 of FIG. 5 would beupdated in S606 to reflect a changed location of any of converter pages510 within data area 205.

A plurality of data pages of the data volume to be deleted is identifiedat S607. The identification is based on converter pages of the cachethat associate each of the data pages with the data volume. According tosome embodiments, a location of each of converter pages 270 isdetermined and S607 based on converter map table 265. Each of converterpages 270 is examined to locate each logical page number that isassociated with a block address of data volume 1.

At S608, it is determined whether each identified data page is stored inthe cache. Each identified data page that is not stored in the cache isread from the data volume using its associated block address and storedin the cache. Accordingly, after completion of S608, the cache includeseither an identical or a modified version of each data page of the datavolume to be deleted. Each data page is then designated as modified atS609, regardless of whether the data page is an identical or modifiedversion of its associated page in the data volume.

FIG. 10 illustrates data cache 250 of I/O buffer cache 114 afterdesignation of the data pages as modified in S609. Data cache 250 mayinclude data pages other than those shown in FIG. 10. Also, both datacache 250 and volume 1 data pages 1000 are circumscribed with dottedlines to indicate that they do not necessarily occupy contiguous memoryaddresses.

Each data page in the cache that is designated as modified is written atS610 to a respective location in one or more other data volumes of thedata area. DBMS 112 may utilize the above-described shadow memoryfeature and free block management component at S610 to automaticallywrite the modified pages of cache 114 to data volumes 2 or 3 of dataarea 205. A converter page is then updated at S611 for each of the datapages written at S610. Each of the updated converter pages associatesone of the written data pages with the location to which it was writtenat S610.

FIG. 11 illustrates S610 and S611 according to some embodiments. Volume1 data pages 1000 are written to data volume 2 and data volume 3, andI/O buffer cache 114 stores updated converter pages 1100 reflecting thenew locations of data pages 1000. FIG. 12 illustrates portions of two ofupdated converter pages 1100 according to some embodiments.

Converter page 1276 is an updated version of converter page 976 of FIG.9. Converter page 976 associates page number 111 with block 300 of datavolume 1. Accordingly, page number 111 is written to a location of datavolumes 2 or 3 at S610. Next, at S611, converter page 976 is updated toreflect the new location (i.e., block 504 of data volume 2) of pagenumber 111. Updated converter page 1278 corresponds similarly toconverter page 978 of FIG. 9. As shown, both of pages 1276 and 1278 aredesignated as modified due to their updating at S611.

At S612, each of the updated converter pages of the cache is updated toindicate a respective location in one or more other data volumes. Therespective location of an updated converter page indicates where theconverter page is to be subsequently written. Again, the free blockmanagement component of DBMS 112 may ensure that the converter pages areupdated at S612 to indicate only locations in data volumes 2 and 3 ofdata area 205.

Converter pages 1376 and 1378 of FIG. 13 are updated versions ofconverter pages 1276 and 1278 according to some embodiments of S612.Each of converter pages 1376 and 1378 indicates a new block address ofdata volume 2 or data volume 3. The present example assumes that S612occurs during a savepoint, therefore a version number of converter pages1276 and 1278 is also updated to reflect execution of the savepoint.

The updated converter pages of the cache are written to their indicatedlocations in the one or more other data volumes at S613. FIG. 14illustrates writing the converter pages to their indicated locationsaccording to some embodiments of S613. FIG. 14 also shows that theblocks of data area 205 including the “last known good” versions of thewritten converter pages have been freed at the completion of thesavepoint.

A converter index page is updated at S614 for each of the converterpages written at S613. The converter index pages are updated toassociate the written converter pages with their new locations in thedata area. This updating may allow DBMS 112 to locate the converterpages in data area 205 at a next restart.

Next, at S615, it is determined that the data volume to be deletedincludes a restart page. A restart page may store information that adatabase system requires to restart a database. The restart page may beupdated at each savepoint.

According to some implementations, a restart page is located in a dataarea at block 1 of data volume 1. FIG. 15A illustrates data volumes 1through 3 according to some embodiments in which the restart page islocated in a data area at block 1 of data volume 1. In suchimplementations, the determination at S615 may comprise determining thatthe data volume to be deleted is data volume 1 of the data area. Block 0of each illustrated data volume includes an IOMan_Info page, to bediscussed in detail below.

The restart page is moved to a location in one of the other data volumesat S616. FIG. 15B shows an example in which the restart page is moved toa block of data volume 3. The database system records the new locationof the restart page by modifying a page of a non-deleted data volume atS617 to indicate the new location.

FIG. 16A illustrates a page to be modified according to some embodimentsof S617. IOMan_Info page 1500 is located at block 0 of data volume 2.Prior to S617, variables rstVolumeId and rstBlockNo of page 1500indicate that the restart page is located at block 1 of data volume 1.FIG. 16B illustrates IOMan_Info page 1510 after S617. As shown,variables rstVolumeId and rstBlockNo of page 1510 indicate that therestart page is located at block 1806 of data volume 3. According tosome embodiments, the IOMan_Info page of the “new” first data volume ina data area is modified at S617 to indicate the new location of therestart page.

A data volume linkage associated with the data area is modified at S618according to some embodiments. Flow may proceed directly to S618 fromS614 if the data volume to be deleted does not include a restart page.Again referring to FIG. 16A, variables prevVolumeId and nextVolumeId ofpage 1500 specify a data linkage of the data area by indicating aprevious and next data volume of the subject data area. The data linkagemay be modified by updating variables prevVolumeId and nextVolumeId asshown in page 1510 to reflect the deletion of data volume 1 illustratedin FIG. 15B.

Next, at S619, a configuration file associated with the data area ismodified. The modification reflects deletion of the subject data volume.FIGS. 17A and 17B illustrate such a configuration file before and afterS619 according to some embodiments. Configuration file 1700 may bestored among configuration files 235 of database 113.

As shown, configuration file 1700 specifies a logical identifierDATA_VOLUME_NAME_001 for data volume 1 and associates the identifierwith a physical location. After deletion of the data volume according toprocess 600, configuration file 1700 may be modified at S619 to createconfiguration file 1710. Configuration file 1710 is identical to file1700 except for the deletion of information related to the deleted datavolume.

The embodiments described herein are solely for the purpose ofillustration. Those skilled in the art will recognize other embodimentsmay be practiced with modifications and alterations limited only by theclaims.

1. A method for managing a data volume of a data area, the methodcomprising: storing a plurality of data pages into a cache, wherein eachof the stored plurality of data pages is a copy of a respective one of aplurality of data pages of the data volume; preventing writing of datapages to the data volume; designating each of the plurality of datapages stored in the cache as modified with respect to a respective datapage stored in the data volume, wherein each one of a plurality of thedata pages stored in the cache is identical to the respective data pagestored in the data volume when the designating of that one as modifiedwith respect to the respective data page stored in the data volume isinitiated; writing all data pages in the cache that are designated asmodified to a respective location in one or more other data volumes ofthe data area; and for each of the written data pages, updating aconverter page of the cache to associate the written data page with itsrespective location in the one or more other data volumes.
 2. A methodaccording to claim 1, wherein storing the plurality of data pagescomprises: identifying the plurality of data pages of the data volumebased on a plurality of converter pages of the cache that associate eachof the plurality of data pages with a respective location in the datavolume; and for each of the plurality of data pages, determining if thedata page is stored in the cache, and, if the data page is not stored incache, reading the data page from the data volume and storing the datapage into the cache.
 3. A method according to claim 1, furthercomprising: identifying a plurality of converter pages of the cache thatare associated with respective converter pages of the data volume;designating the plurality of converter pages as modified; writing allconverter pages in the cache that are designated as modified to arespective location in the one or more other data volumes of the dataarea; and updating each of the written converter pages in the cache toindicate its respective location in the one or more other data volumesof the data area.
 4. A method according to claim 3, further comprising:for each of the written converter pages, updating a converter index pageof the data area to associate the written converter page with itsrespective location in the one or more other data volumes.
 5. A methodaccording to claim 1, further comprising: for each of the updatedconverter pages, further updating the converter page to indicate arespective location in the one or more other data volumes of the cache;writing each of the updated converter pages to its indicated respectivelocation in the one or more other data volumes; and designatinglocations of the plurality of data pages in the data volume as free. 6.A method according to claim 5, further comprising: for each of thewritten updated converter pages, updating a converter index page of thedata area to associate the written updated converter page with itsindicated respective location in the one or more other data volumes. 7.A method according to claim 1, further comprising: determining that thedata volume includes a restart page; moving the restart page to alocation in the one or more other data volumes; and modifying a page ofone of the one or more other data volumes to indicate the location towhich the restart page was moved.
 8. A tangible computer-readable mediumstoring program code to manage a data volume of a data area, the programcode comprising: code to store a plurality of data pages into a cachewherein each of the stored plurality of data pages is a copy of arespective one of a plurality of data pages of the data volume; code toprevent writing of data pages to the data volume; code to designate eachof the plurality of data pages stored in the cache as modified withrespect to a respective data page stored in the data volume, whereineach one of a plurality of the data pages stored in the cache isidentical to the respective data page stored in the data volume when thedesignation of that one as modified with respect to the respective datapage stored in the data volume is initiated; code to write all datapages in the cache that are designated as modified to a respectivelocation in one or more other data volumes of the data area; and code toupdate, for each of the written data pages, a converter page of thecache to associate the written data page with its respective location inthe one or more other data volumes.
 9. A tangible medium according toclaim 8, wherein the code to store the plurality of data pagescomprises: code to identify the plurality of data pages of the datavolume based on a plurality of converter pages of the cache thatassociate each of the plurality of data pages with a respective locationin the data volume; and code to determine, for each of the plurality ofdata pages, if the data page is stored in the cache, and, if the datapage is not stored in cache, code to read the data page from the datavolume and to store the data page into the cache.
 10. A tangible mediumaccording to claim 8, the program code further comprising: code toidentify a plurality of converter pages of the cache that are associatedwith respective converter pages of the data volume; code to designatethe plurality of converter pages as modified; code to write allconverter pages in the cache that are designated as modified to arespective location in the one or more other data volumes of the dataarea; and code to update each of the written converter pages in thecache to indicate its respective location in the one or more other datavolumes of the data area.
 11. A tangible medium according to claim 10,the program code further comprising: code to update, for each of thewritten converter pages, a converter index page of the data area toassociate the written converter page with its respective location in theone or more other data volumes.
 12. A tangible medium according to claim8, the program code further comprising: code to further update, for eachof the updated converter pages, the converter page to indicate arespective location in the one or more other data volumes of the cache;code to write each of the updated converter pages to its indicatedrespective location in the one or more other data volumes; and code todesignate locations of the plurality of data pages in the data volume asfree.
 13. A tangible medium according to claim 12, the program codefurther comprising: code to update, for each of the written updatedconverter pages, a converter index page of the data area to associatethe written updated converter page with its indicated respectivelocation in the one or more other data volumes.
 14. A tangible mediumaccording to claim 8, the program code further comprising: code todetermine that the data volume includes a restart page; code to move therestart page to a location in the one or more other data volumes; andcode to modify a page of one of the one or more other data volumes toindicate the location to which the restart page was moved.
 15. A systemcomprising: a database comprising: a data area; a data volume of thedata area, the data volume comprising a plurality of data pages; and oneor more other data volumes of the data area; a cache to store data pagesand converter pages; and a database management system in communicationwith the database and the cache, the database management system to:store the plurality of data pages into the cache, wherein each of thestored plurality of data pages is a copy of a respective one of aplurality of data pages of the data volume; prevent writing of datapages to the data volume; designate each of the plurality of data pagesstored in the cache as modified with respect to a respective data pagestored in the data volume, wherein each one of a plurality of the datapages is identical to the respective data page stored in the data volumewhen the designation of that one as modified with respect to therespective data page stored in the data volume is initiated; write alldata pages in the cache that are designated as modified to a respectivelocation in the one or more other data volumes; and update, for each ofthe written data pages, a converter page of the cache to associate thewritten data page with its respective location in the one or more otherdata volumes.
 16. A system according to claim 15, wherein storage of theplurality of data pages comprises: identification of the plurality ofdata pages of the data volume based on a plurality of converter pages ofthe cache that associate each of the plurality of data pages with arespective location in the data volume; and determination, for each ofthe plurality of data pages, of whether the data page is stored in thecache, and, if the data page is not stored in cache, reading of the datapage from the data volume and storage of the data page into the cache.17. A system according to claim 15, the database management systemfurther to: identify a plurality of converter pages of the cache thatare associated with respective converter pages of the data volume;designate the plurality of converter pages as modified; write allconverter pages in the cache that are designated as modified to arespective location in the one or more other data volumes of the dataarea; and update each of the written converter pages in the cache toindicate its respective location in the one or more other data volumesof the data area.
 18. A system according to claim 17, the databasemanagement system further to: update, for each of the written converterpages, a converter index page of the data area to associate the writtenconverter page with its respective location in the one or more otherdata volumes.
 19. A system according to claim 15, the databasemanagement system further to: update, for each of the updated converterpages, the converter page to indicate a respective location in the oneor more other data volumes of the cache; write each of the updatedconverter pages to its indicated respective location in the one or moreother data volumes; and designate locations of the plurality of datapages in the data volume as free.
 20. A system according to claim 19,the database management system further to: update, for each of thewritten updated converter pages, a converter index page of the data areato associate the written updated converter page with its indicatedrespective location in the one or more other data volumes.
 21. A systemaccording to claim 15, the database management system further to:determine that the data volume includes a restart page; move the restartpage to a location in the one or more other data volumes; and modify apage of one of the one or more other data volumes to indicate thelocation to which the restart page was moved.
 22. A method for managinga data volume of a data area, the method comprising: storing a pluralityof data pages of the data volume into a cache; preventing writing ofdata pages to the data volume; designating each data page of the storeddata pages as modified with respect to a respective data page of thedata pages of the data volume regardless of whether the data page of thestored data pages is an identical version or a modified version of therespective data page of the data pages of the data volume; writing eachof the stored data pages that is designated as modified to a respectivelocation in one or more other data volumes of the data area; and foreach data page of the written data pages, updating a converter page ofthe cache to associate the written data page with its respectivelocation in the one or more other data volumes.
 23. A method accordingto claim 1, wherein the designating each of the plurality of data pagesstored in the cache as modified with respect to a respective data pagestored in the data volume comprises: designating, during the preventingwriting of data pages to the data volume, each of the plurality of datapages stored in the cache as modified with respect to the respectivedata page stored in the data volume.
 24. A method according to claim 1,wherein the preventing writing of data pages to the data volumecomprises: designating the data volume as read only.
 25. A methodaccording to claim 1, further comprising: not writing the data pagesdesignated as modified to the respective data page stored in the datavolume.
 26. A method according to claim 23, wherein the preventingwriting of data pages to the data volume comprises designating the datavolume as read only and wherein the method further comprises not writingthe data pages designated as modified to the respective data page storedin the data volume.
 27. An apparatus according to claim 8, wherein thecode to designate each of the plurality of data pages stored in thecache as modified with respect to a respective data page stored in thedata volume comprises: code to designate, during the prevention ofwriting of data pages to the data volume, each of the plurality of datapages stored in the cache as modified with respect to the respectivedata page stored in the data volume.
 28. A system according to claim 15,wherein the designation each of the plurality of data pages stored inthe cache as modified with respect to a respective data page stored inthe data volume comprises: designation, during the prevention of writingof data pages to the data volume, of each of the plurality of data pagesstored in the cache as modified with respect to a respective data pagestored in the data volume.
 29. A method according to claim 22, whereinthe designating each data page of the stored data pages as modified withrespect to a respective data page of the data pages of the data volumecomprises: designating, during the preventing writing of data pages tothe data volume, each data page of the stored data pages as modifiedwith respect to a respective data page of the data pages of the datavolume.